package Control;

import java.io.Serializable;
import java.util.Calendar;
import java.util.GregorianCalendar;

import processing.core.PVector;

public class UFO implements Serializable{
	PVector coordinates;
	GregorianCalendar dateOfSight;  //comprehensive of hours
	Shape shape;
	String summary;
	String longSummary;
	String closestBaseName;
	String duration;		//duration in secs
	String closestAirportId;
	String closestDensityId;
	String closestWeatherStationName;
	
	public String getClosestWeatherStationName() {
		return closestWeatherStationName;
	}

	public void setClosestWeatherStationName(String closestWeatherStationName) {
		this.closestWeatherStationName = closestWeatherStationName;
	}

	public String getClosestDensityId() {
		return closestDensityId;
	}

	public void setClosestDensityId(String closestDensityId) {
		this.closestDensityId = closestDensityId;
	}

	public double getPopulationDensity() {
		return populationDensity;
	}

	public void setPopulationDensity(double populationDensity) {
		this.populationDensity = populationDensity;
	}

	public String getClosestAirportId() {
		return closestAirportId;
	}

	public void setClosestAirportId(String closestAirportId) {
		this.closestAirportId = closestAirportId;
	}
	
	public void setClosestBaseName(String closestBaseName)
	{
		this.closestBaseName=closestBaseName;
	}
	public String getClosestBaseName()
	{
		return this.closestBaseName;
	}

	public double getDistanceFromClosestAirport() {
		return distanceFromClosestAirport;
	}

	public void setDistanceFromClosestAirport(double distanceFromClosestAirport) {
		this.distanceFromClosestAirport = distanceFromClosestAirport;
	}

	public double getDistanceFromClosestMilitaryBase() {
		return distanceFromClosestMilitaryBase;
	}

	public void setDistanceFromClosestMilitaryBase(
			double distanceFromClosestMilitaryBase) {
		this.distanceFromClosestMilitaryBase = distanceFromClosestMilitaryBase;
	}

	public double distanceFromClosestAirport;
	public double distanceFromClosestMilitaryBase;
	double distanceFromClosestWeatherStation;
	public double getDistanceFromClosestWeatherStation() {
		return distanceFromClosestWeatherStation;
	}

	public void setDistanceFromClosestWeatherStation(
			double distanceFromClosestWeatherStation) {
		this.distanceFromClosestWeatherStation = distanceFromClosestWeatherStation;
	}

	public double populationDensity;
	
	String city;
	String state;
		
	
	@Override
	public String toString() {
		return "UFO [dateOfSight=" + dateOfSight.get(Calendar.MONTH)+" "+dateOfSight.get(Calendar.YEAR) + ", shape=" + shape.getName()
				+ ", summary=" + summary + ", longSummary=" + longSummary
				+ ", duration=" + duration + ", distanceFromClosestAirport="
				+ distanceFromClosestAirport
				+ ", distanceFromClosestMilitaryBase="
				+ distanceFromClosestMilitaryBase + ", populationDensity="
				+ populationDensity + ", city=" + city + ", state=" + state
				+ "]";
	}

	public UFO(PVector coordinates, GregorianCalendar dateOfSight, Shape shape,
			String summary, String duration,String city, String state,String longSummary) {
		super();
		this.coordinates = coordinates;
		this.dateOfSight = dateOfSight;
		this.shape = shape;
		this.summary = summary;
		this.duration = duration;
		this.city = city;
		this.state = state;
		this.longSummary = longSummary;
	}
	
	public String getLongSummary() {
		return longSummary;
	}

	public PVector getCoordinates() {
		return coordinates;
	}
	public GregorianCalendar getDateOfSight() {
		return dateOfSight;
	}
	public Shape getShape() {
		return shape;
	}
	public String getSummary() {
		return summary;
	}
	public String getDuration() {
		return duration;
	}
	public String getCity() {
		return city;
	}

	public String getState() {
		return state;
	}

	
	

}
